The present invention relates generally to tone generation apparatus based on a waveform memory scheme (i.e., waveform-memory-based tone generation apparatus), and more particularly to a tone generation apparatus which prestores waveform data in an external storage medium, such as a NAND-type flash memory and reproduces the waveform data while at the same time reading out the waveform data from the external storage medium to a waveform memory via a buffer.
Heretofore, there have been known tone generation apparatus which prestore waveform data in a hard disk (HD) and reproduce the waveform data while at the same time reading out the waveform data from the hard disk to a buffer and then from the buffer to a waveform memory, as disclosed, for example, in Japanese Patent Nos. 2671747 and 4089687 (patent literatures 1 and 2). In such tone generation apparatus, the actual start of tone generation would be undesirably delayed because the waveform data prestored in the hard disk are reproduced by being read out to the waveform memory via the buffer in response to a tone generation instruction, and thus, arrangements are made to pre-read a leading portion of the waveform data from the hard disk into the waveform memory upon powering-on of the tone generation apparatus. Then, in response to a tone generation instruction, the tone generation apparatus immediately start reproducing the leading portion of the waveform data from the waveform memory and read out a succeeding portion of the waveform data from the hard disk to the waveform memory via the buffer during the reproduction of the leading portion. Upon apparatus reproduce the succeeding portion of the waveform data already read out to the waveform memory, during which time the apparatus read out a further succeeding portion of the waveform data. By repeating the aforementioned operations, the tone generation apparatus continues the reproduction. In the aforementioned manner, the tone generation apparatus can start tone generation with no delay upon receipt of a tone generation instruction.
With the aforementioned waveform-memory-based scheme, each time one cluster of waveform data (sample data) read into the buffer is read out from the buffer to the waveform memory (i.e., the buffer is emptied), a transfer request interrupt is issued to a CPU. In response to such a transfer request interrupt, the CPU designates another cluster of the waveform data, stored in the hard disk, to be read out next and instructs a transfer section to transfer the cluster from the hard disk to the buffer. Therefore, the operation for interrupting the CPU is an essential operation.
Further, among such conventionally-known waveform-memory-based tone generators using a burst transfer is a technique disclosed in Japanese Patent No. 3163984 (patent literature 3). The technique disclosed in patent literature 3 is arranged to temporarily store waveform samples, read out from a waveform memory, into a buffer memory and then generate a tone by selectively reading out necessary waveform samples from the buffer memory. Such readout of the waveform samples from the waveform memory to the buffer memory is performed through burst transfer, a plurality of samples at a time. Such a burst transfer can achieve reduced access time.
Recent years have seen increased capacity and reduced cost of a NAND-type flash memory, and attempts have been made to use a NAND-type flash memory along with a hard disk as a large-capacity storage means in various apparatus. Although the NAND-type flash memory requires a long time to make instant access to a page (corresponding to a cluster of the hard disk), it can achieve a quick data transfer speed after the start of the instant access. Further, error correction based on error correction code is essential.
However, the tone generation apparatus using the hard disk would present the inconvenience that an access speed to the hard disk becomes a bottleneck so that the number of channel capable of simultaneously reproducing tones is limited, although it is desirable to maximize the number of channels capable of simultaneously generating or reproducing tones in the tone generation apparatus. One conceivable way to maximize the number of channels capable of simultaneously reproducing tones is to use a NAND-type flash memory in place of the hard disk. Because the NAND-type flash memory can achieve a markedly quick data transfer speed as compared to the hard disk, it can significantly reduce the size of each cluster (page), which is a minimum readout unit, e.g., by a factor of ten or below. In such a case, however, a frequency at which a transfer request interrupt is issued to the CPU would considerably increase by a factor of ten or over. Namely, in the case where the NAND-type flash memory is used as a memory for storing waveform data to be used in a tone generator, a frequency at which control by the CPU, controlling the tone generator, is required would increase, so that there would occur the problem that a burden on the CPU increases to a considerably degree. Therefore, it is desired that control heretofore performed by the CPU in accordance with processing programs in the tone generation apparatus using the hard disk be performed by dedicated hardware circuit device of a tone generator provided in the tone generator using the NAND-type flash memory.
Further, data read out from the NAND-type flash memory are more likely to contain an error than data read out from other types of memories, and thus, when storing data into the NAND-type flash memory, it is essential to store the data with error correction code attached to the data per page. The hard disk would present a similar data error problem, but, in the conventionally-known tone generation apparatus using the hard disk, it has been customary for data correction to be automatically performed as a firmware process of a processor within the hardware device. Consequently, there would be undesirably caused as time delay from a time when an address is supplied for the intervening processor to a time when data can be obtained. Therefore, in the tone generation apparatus using the NAND-type flash memory, it is desirable, in order to achieve an increased access speed, that no processor intervene between an LSI of the NAND-type flash memory and an LSI of the tone generation apparatus. In such a case, however, the NAND-type flash memory undesirably cannot perform data correction on its own.
Tone generators (tone generation apparatus) having waveform data stored in a NAND-type flash memory are available in the market today, and these tone generators are each constructed in such a manner that, prior to tone generation by the tone generator, a CPU reads out all of necessary waveform data from the NAND-type flash memory, corrects errors in the read-out waveform data and then stores the error-corrected waveform data into a waveform memory implemented by a RAM. In this case, however, the waveform data would be undesirably limited in size due to the size of the waveform memory implemented by a RAM.